プロセッサリソースのアーキテクチャ脆弱性の検出
专利摘要:
一実施形態では、それぞれが量子期間中のプロセッサ構造の動作に関するプロセッサメトリックに基づいてプロセッサの脆弱性計測値を検出する量子検出器を、脆弱性計測値に基づいて誤り軽減ユニットを制御するコントローラとともに提供する。他の実施形態も記載され請求されている。 公开号:JP2011515745A 申请号:JP2010549948 申请日:2009-04-20 公开日:2011-05-19 发明作者:サウンダララジャン、ニランジャン;ビスワス、アリジット;ムカージェ、シュブヘンドゥ 申请人:インテル・コーポレーション; IPC主号:G06F11-10
专利说明:
[0001] 主に中性子粒子に起因した、放射線が誘発するソフトの誤りはプロセッサの設計者の主要な課題となっている。この種類の誤りは、デバイスの永続的な欠陥を反映したものではないので、ソフトの誤りまたは一時誤りと称されている。一時誤りが生じるビットアップセットは、パッケージ材料およびバンプからのアルファ粒子に起因したものに加えて生じる。単一チップ上のトランジスタ数の指数関数的増加および積極的な電圧スケーリングによって将来のチップ生成においてこの問題は顕著に悪化することが予想される。] [0002] 宇宙線による襲撃の問題を提起するべく、ある方法ではプロセッサまたは他の半導体デバイスの全ラッチの殆どの割合を、パリティ等のある種の誤り検出で保護しようと試みている。同様に、高性能マイクロプロセッサ内のキャッシュおよびレジスタファイル等の殆どの主要なアレイは、ある種の誤り検出および復帰技術を利用している。単一チップに搭載されるトランジスタ数が今後増えると、後世のプロセッサで同じレベルの信頼性を維持することは益々難しくなっていくことが予期される。] [0003] 信頼性は経時的欠陥(FIT)を尺度としており、1FITとは、十億動作時間ごとに1つの欠陥があることを表す。FITには3つの主要なコンポーネントが存在する。すなわち、製造プロセスおよびクロックスキームの関数である回路の固有の誤り率、設計パラメータであるマイクロプロセッサのビット数、および、ビットフリップがユーザから見える誤りとなる確率であるアーキテクチャ脆弱性係数(AVF)である。ユーザから見える誤りは、マイクロプロセッサのピンに到達して、メインメモリまたは入出力(I/O)デバイスへと逃避するビット破損として定義される。FITのこれら3つのコンポーネントのうち、AVFは唯一、経時的に顕著に変化する可能性がある。実際のところ、AVFは平均値としてプログラムごとに非常に変化が激しいということが研究により分かっている(場合によって90%を超える)。AVFは、長期的な平均値ではなく量子期間として知られている短期間のリアルタイム計測において、プログラム内でも激しく変化しうる。] [0004] 殆どのアーキテクチャおよびマイクロアーキテクチャ誤り検出/復帰メカニズムは、マイクロプロセッサのAVF平均値を低減させるよう試みており、これにより信頼性全体を向上させようとしている。しかしこのようにして向上した信頼性というのは、電力および性能面の代償をひきかえに達成されるものである。パリティ予測および剰余といったスキームは、主に実行ユニットを保護することを目的としており、高電力消費という代償が伴う。冗長実行等のマイクロアーキテクチャ冗長スキームは、2つの異なる命令の並行演算に利用することのできる実行ユニットを単一の命令を計算する目的で冗長的に利用するので、電力面での代償および性能面での代償両方を伴う。殆どの誤り軽減スキームは、目下のところプログラム実行中にリアルタイムでAVFを計測する信頼できる方法がないために、常時起動状態となる。この結果、これらメカニズムにおける電力および性能面での代償は固定した不利益となっている。] 図面の簡単な説明 [0005] 本発明の一実施形態における方法のフロー図である。 本発明の一実施形態におけるプロセッサのブロック図である。 本発明の一実施形態におけるフロントエンドのQ−AVF検出器のブロック図である。 本発明の一実施形態におけるバックエンドのQ−AVF検出器のブロック図である。 本発明の一実施形態におけるメモリサブシステムQ−AVF検出器のブロック図である。 本発明の一実施形態におけるコアQ−AVF検出器のブロック図である。 本発明の一実施形態におけるシステムのブロック図である。] 実施例 [0006] 様々な実施形態において、量子化AVF(Q−AVF)は、プロセッサ実行中のアーキテクチャ脆弱性のリアルタイム指標を提供しうる。このQ−AVFは、AVF平均値とは大きく変わる可能性がある。Q−AVFはアーキテクチャ脆弱性のリアルタイム指標であるので、実施形態は、この情報を利用することで誤り軽減ハードウェアを制御することができる。つまり、実施形態では、量子化AVFメトリックを計測して、この計測値に基づいて、誤り軽減ハードウェアを利用するべきか否か、およびその利用範囲を決定することができる。例えば、許容範囲にある脆弱性に対して1以上の閾値を設けることができ、Q−AVFが一定の閾値を超えた場合には軽減ハードウェアを起動することができる。このようにして、誤りハードウェアを動的に制御することが可能となり、脆弱性が低い場合には節電および性能向上を達成することができ、誤り脆弱性が実際に高い場合のみに、これら不利益を代償として信頼性を高めることが可能となる。] [0007] これら節電の幾らかの例は、冗長マルチスレッド(RMT)、デュアルモード冗長性(DMR)等の誤り軽減スキームに見られる。RMTでは、単一のスレッドの2つのコピーを冗長的に実行し、これらの結果をコミット前にチェックする。DMRは、同じ命令を2つの別個のハードウェア(2つの対称実行ポート等)で実行して、その結果を比較する。いずれの場合においても、本来冗長なリソースは別個の命令を並行して実行することで性能および全電力利用を向上させることができることから、冗長性に起因して電力および性能両面での代償が生じる。本発明の実施形態を利用することにより、Q−AVFを計算してソフトの誤り脆弱性が低い期間を特定し、これを、これら誤り軽減技術の利用を動的に制御する目的に利用することができるので、性能、電力、ひいては領域についても節約が可能となる(領域に関しては、冗長実行に利用されてきた領域を利用して性能を向上させることができるからである)。] [0008] パリティ予測または剰余等の他の誤り軽減スキームは、処理ごとに固有のコードビットを生成し、結果とともに格納する。結果を読み出す際には、コードを再生成して、格納されていたコードと比較して誤りを検出する。決定されたQ−AVFに基づいて、実施形態は、誤り脆弱性が高い場合のみに限ってこのコード生成を行うよう実行を制御することで、問題となっている低脆弱性段階中にはこれら動作を行う電力を節約することができる。パリティおよび誤り訂正符号(ECC)も同様にして動的にイネーブルまたはディセーブルが可能であり、これにより本発明の実施形態を利用して節電が可能となる。] [0009] 別の例では、単一のバイナリON/OFFの代わりに多数の脆弱性閾値を提供することができる。この例では、誤り軽減は脆弱性に基づいて増減させることができる。2つの脆弱性閾値を想定する。第1の閾値を下回る値はすべて低脆弱性とみなし、検出または訂正を要しないことにする。第1の閾値および第2の閾値の間の値は中間的脆弱性とみなし、誤り検出を行ってもよいが、訂正は行わないこととする。第2の閾値を超える値は高脆弱性とみなし、誤り検出および訂正の両方を実行することができる。この場合、Q−AVFメトリックを利用して、プログラムの脆弱性レベルを判断することができる。Q−AVFが中間であった場合(つまり、2つの閾値の間である場合)、脆弱な構造上にパリティ保護を呼び出すことができる。Q−AVFが高レベルとなった場合(つまり、第2の閾値を超える場合)、この代わりに誤り訂正メカニズムを利用することができる。この場合、保護スキームの電力の代償は、必要に応じて利用、および必要に応じた量の利用により最適化される。パリティおよび/またはECCがインライン式ではない場合、(故に性能面での代償を伴う場合)、性能を最適化することができる。] [0010] Q−AVF情報を利用して誤り軽減ハードウェアを動的に制御する別の例としては、チェックポイントに関するものが挙げられる。チェックポイントは、誤り検出メカニズムが誤りを検出したときに、既知の「良好な」動作点まで戻るのに利用されるアーキテクチャ状態の定期的なスナップショットのことである。チェックポイントは、一般的に、一定のメモリ量を利用し、このことは、特に多数のチェックポイントが必要な場合、大規模マルチコアまたはマルチソケットシステムでは重大になりうる。実施形態を利用することで、チェックポイントを生成および格納する周期を決定することができる。脆弱性が低い場合には、メモリおよび電力を、チェックポイント生成周期を長くすることで節約することができる。逆に脆弱性が高い場合には、チェックポイント生成周期を短くすることができる。最終的には、これにより電力および性能面で最適化を図ることができる。] [0011] 様々な実施形態では、Q−AVFを近似する多数の方法が存在する。さらに、プロセッサその他の半導体デバイス内の様々な構造についてこのQ−AVFメトリックを決定することができる。幾らかの実装例では、Q−AVFメトリックを様々な規模で分析することができる。例えば、幾らかの実施形態では、Q−AVFの計測を全コアベースで行うことができる。この代わりに、またはこれに加えて、誤り検出/訂正メカニズムを制御するために、高度なQ−AVF計測を行う決定をすることができる。 例えば、他の実装例では、プロセッサの様々な箇所(フロントエンド、バックエンド、メモリサブシステム、その他のプロセッサの各部位)において、独立したQ−AVF分析を行うことができる。さらに、これら様々なプロセッサリソースの異なるメトリックを分析してQ−AVFを推定することができる。一実装例では、一定のプロセッサメトリックの一次関数を利用して、Q−AVFを異なる時点で様々な構造について近似することができる。] [0012] 一実施形態では、プロセッサの重要箇所のAVFおよびQ−AVFを近似することのできる直線回帰分析から導出される特定のメトリックを監視することができるハードウェアメカニズムを提供することができる。一次方程式はハードウェアに実装することができるが、本発明の範囲はこの点に限定はされない。ハードウェアメカニズムは、メカニズムが起動した際に一定の期間(本明細書では「量子期間」と称する)の任意のパラメータをカウントする一式のハードウェアカウンタを含むことができる。各量子期間の最後には、各カウンタの値を一次関数により処理することができる。] [0013] 特定の一次関数は、プロセッサのマイクロアーキテクチャの詳細に依存しており、実際のAVFを任意のメトリックリストと相関付けする際の直線回帰分析による導出が可能である。一実施形態では、ここで記載する様々なロジックが利用する一次関数は、プロセッサ設計時の1以上の直線回帰分析に基づいていてよい。この分析は、プロセッサ自身の設計パラメータに基づいており、これら設計パラメータが変化した場合には、回帰分析を更新して新たな関数を得ることができる。幾らかの実装例では、アーキテクチャの振る舞いにプロセッサファミリにおける根本的な変化がない場合には(例えば、キャッシュサイズ、バッファサイズ等の設計パラメータのサイズのみが異なる場合)、重み付け(つまり係数)には変化がみられるだろうが、同じ関数が複数のプロセッサ設計に対して維持されるだろう。様々な実施形態では、重み(つまり係数)は、制御レジスタからプログラミング可能であり、制御レジスタの初期値を変更することで一次関数を更新することができる。] [0014] ハードウェアメカニズムの適切な構築には様々な要素を考慮に入れることができる。例えば、カウンタは有限容量を有するので、オーバフローを伴わずにかなりの長期間にわたるカウントはできない。オーバフローしてしまうと情報が失われる。従って、メカニズム動作中の量子期間は、カウンタのオーバフローを回避するべく極力小さい値(例えば、約100から約1000プロセッササイクルのオーダ)に設定することができるが、本発明の範囲はこの点に限定されない。この代わりに、生じさせるQ−AVFが一定のレベルのリアルタイム精度を提供することができるような量子サイズを選択するようにしてもよい。この場合には、一次方程式メトリックのカウンタは、量子期間中にオーバフローしないよう保証できるようなサイズとするべきである。] [0015] 直線回帰分析により、複数の異なるプログラムのQ−AVF値を数千万サイクルに亘り正確に近似することができる。この分析に基づいて、単純なプロセッサメトリックの一次方程式を利用することで、任意のプログラムのランタイム中の脆弱性のリアルタイム変動を正確に推定することができるようになる。この脆弱性の変動は、誤り復帰メカニズムが脆弱性の低い段階には緩和できることを示しており、これによりこれら段階における誤り軽減に伴う電力/性能面での代償を緩和させることができる。プログラムが高脆弱性の段階に入ると、誤り軽減メカニズムが起動して、電力消費を増加させ性能を低減させるが、本当に必要な場合なのでQ−AVFをゼロまたは許容できる程度の低レベルにまで落とすことができる。] [0016] ハードウェアメカニズムにより、起動時に各量子期間についてQ−AVFが生成される。このQ−AVF値が一定の許容値を超えると、誤り軽減ハードウェアを動的に起動してAVFを低減させることができる。Q−AVF値が一定の閾値を下回ると、誤り軽減ハードウェアを動的に停止することができる。このようにして、誤り軽減ハードウェアを本当に必要なときにのみ利用して、他の場合には電力および性能面での動作コストを生じさせない。] [0017] 図1は、本発明の一実施形態における方法のフロー図である。図1に示すように、方法10を利用して、Q−AVF検出器を動作させて、検出器からの情報に基づいて1以上の誤り訂正/検出メカニズムを動的に制御することができる。図1に示すように、方法10は、Q−AVF検出器を起動することにより開始することができる。上述したように、Q−AVF検出器は、一式のハードウェアカウンタおよびロジック(制御ロジック、演算ロジック、比較ロジック等)を含むメカニズムであって、これに関しては以下の特定の実装例で説明する。幾らかの実装例では、検出器が利用するカウンタの少なくとも幾つかが、既存のカウンタ(例えばプロセッサの性能監視ユニット等の有するカウンタ)を利用してよい。] 図1 [0018] 図1を再度参照すると、選択的制御可能な(例えば、プログラムの制御、ユーザの制御、オペレーティングシステムの制御等により)起動の後で、任意の量子期間について1以上のプロセッサメトリックを決定することができる(ブロック20)。例えば、プロセッサメトリックは、任意の量子期間中に利用される異なるプロセッサリソースのカウントに相当していてよい。特定のリソースおよびその利用情報については以下で説明する。任意の量子の期間(実施形態ごとに期間は異なっていてよい)が終了すると、プロセッサメトリックを利用してプロセッサの少なくとも一部についてQ−AVF値を決定してよい(ブロック30)。例えば、以下で詳述するように、所定の関数(例えば一次方程式)による複数のプロセッサメトリックの組み合わせを利用することにより、Q−AVF値を決定することができる。1以上のQ−AVF値を、プロセッサの個々のリソースについて、あるいは、プロセッサの任意の単位に相当するこれらリソースの集合体について、あるいは、全プロセッサ(コア)ベースで決定することができる。] 図1 [0019] 次に、制御はブロック40に移り、ここではQ−AVF値を少なくとも1つの閾値と比較してよい。上述したように、幾らかの実装例では、単一の閾値を提供することが出来るが、他の実装例では、複数の閾値を提供してもよい。この比較に基づいて、少なくとも1つの誤り検出/訂正メカニズムを動的に制御することができる(ブロック50)。例えば、Q−AVF値が閾値を下回った場合にはこのメカニズムをディセーブルし、一方でQ−AVF値が閾値を上回った場合には1以上のメカニズムをイネーブルしてさらなる保護メカニズムを起動することができる。一実施形態では、Q−AVF値と1以上の閾値との比較に少なくとも部分的に基づいて、検出器ロジックにより制御信号を生成することができる。一実施形態ではこの制御信号を利用して誤り軽減ハードウェアを動的に制御することができる。このようにして、検出器は誤り軽減を実装するにあたっての代償を動的に制御することができる。他の実施形態では、検出器ロジックは可変制御を行って、2設定(つまりONまたはOFF)のみの代わりに多数の設定を実現することができる。例えば、各保護が2以上のプロセッサをカバーするような、複数の冗長または複数の保護を提供することができ、電力および性能面での代償を増加させることもできる。このような実施形態では、複数の制御信号を提供して、異なる保護レベル間での選択を可能とすることができる。その後制御はダイアモンド60に移り、ここでQ−AVF検出器を停止するか否かを決定してよい。停止する決定を行った場合は、方法10は終了し、さもなくば上述したように制御をブロック20に戻す。本発明の範囲は、図1の実施形態のこの特定の実装例に限定はされない。幾らかの実施形態では、検出器はオンラインまたはオフラインでの動作が可能である。オンラインでは、検出および対応する誤り軽減制御をプログラムの実行中に実行することができ、オフラインでは、プログラムの実行中にプロセッサメトリックのカウントを行い、後にQ−AVFを決定することができ、これは任意のプログラムについてQ−AVFの状態を判断する(例えば、修正可能か、編集可能か、または制御可能かを判断する)際に有用である。] 図1 [0020] 実施形態は、様々なプロセッサその他の半導体デバイスとの利用が可能である。しかし説明の都合上、以下の例示的な実施形態はプロセッサ(例えば、複数のホモジニアスコアまたはヘテロジニアスコアを含むマルチコアプロセッサ)を例にとって説明している。図2は、本発明の一実施形態におけるプロセッサのブロック図である。図2に示すプロセッサ100は単一のコアを示しているが、この単一のコアを複数回複製することで、完全なマルチコアプロセッサを生成することができる。図2に示すプロセッサ100は通常、フロントエンド(FE)110、メモリサブシステム(MS)120、および(BE)バックエンド130という3つの部分を含む。FE110は主にインオーダパイプラインであり、命令復号キューおよび命令フェッチユニットを含む。BE130は、予約ステーション、退避バッファ、実行ユニット、レジスタファイル、およびその他のデータ実行の流れを調節するアーキテクチャ構造を含む。アウトオブオーダプロセッサの場合、BE130は、命令がスケジュールされる場所にあってよく、アウトオブオーダ実行されてよい。インテルアーキテクチャ(登録商標)(IA32)プロセッサのようなある種のアーキテクチャの場合、FE110およびBE130は、さらにFE110が主にマクロ処理(アセンブリ命令)を司り、BE130がマクロオペで多数から1つへとマッピングするより単純な命令である復号されたマイクロ処理(μops)を司ることから区別可能である。MS120は、メモリオーダバッファ(MOB)および様々なキャッシュ構造を含む。] 図2 [0021] 図2に示すフロントエンド110は、下位のキャッシュレベル(例えばメモリサブシステム120の一部)から命令情報を取得して、直後の利用または複数回の利用が予期される命令を一時記憶するために、命令キャッシュおよびフェッチロジック112を含んでよい。命令キャッシュ112には、命令を復号しうる1以上の復号器113、待ち状態の命令を記憶する命令キュー114、および命令復号キュー115が連結されている。さらに、分岐予測ユニット(BPU)116が、プログラム実行中にとるべき分岐を予測して、予測された分岐に関する命令を前もって取得しておくことができる。図2にはさらに、フロントエンド110がフロントエンドQ−AVF検出器118を含むことが示されている。さらに以下で詳述するように、検出器118は図2に示す様々なフロントエンドコンポーネントに対して(および他の同様のコンポーネントに対して)Q−AVF決定を行ってよい。] 図2 [0022] フロントエンド110は、メモリサブシステム120と通信する旨記載されている。サブシステム120はレベル1(L1)キャッシュおよびレベル2(L2)キャッシュであってよいキャッシュ122を含み、L1キャッシュはデータキャッシュであり、L2キャッシュはデータおよび命令の両方を含む統一キャッシュをキャッシュする。アドレス変換を助けるべく、サブシステム120はさらに、データ変換ルックアサイドバッファ(DTLB)124およびページミスハンドラ(PMH)126を含み、エラーがDTLB124に起こったときにメモリ構造の他のレベルからの、要求された情報へのアクセスを助ける。またさらに、メモリサブシステムは、格納およびロード命令等の保留されているデータ変換命令に関するエントリを格納する格納およびロードバッファを含みうるメモリオーダバッファ(MOB)128を含んでよい。またさらに、サブシステム120は、メモリサブシステムQ−AVF検出器129を含む。後述するように検出器129は、図2に示す様々なメモリサブシステムコンポーネントに対して(および他の同様のコンポーネントに対して)メモリサブシステムQ−AVF決定を行うことができる。] 図2 [0023] フロントエンド110およびメモリサブシステム120両方には、さらに、支障の生じた命令を処理し、このような命令を退避させるべく再度オーダする処理に利用することのできるバックエンド130が連結されている。従って図2に示すバックエンド130は、退避オーダバッファおよびレジスタファイル132と、整数ユニット、浮動小数点ユニット、ベクトルユニット等を含む1以上の実行ユニット134とを含む。またさらに、バックエンド130は、実行ユニット134に命令およびオペランドを提供するのに利用されうる予約ステーション136を含んでよい。また予約ステーション136へのエントリは、フロントエンド110から入力される命令を受信して様々なリソース(実行ユニット134およびレジスタファイル132等)に割り当て、レジスタファイル132内の多数の物理レジスタへの限られた数の論理レジスタを改名する、割り当ておよび改名テーブル138により供給されてよい。バックエンド130はさらにバックエンドQ−AVF139を含む。さらに後述するように、検出器139は、図2に示す様々なバックエンドコンポーネントに対して(および他の同様のコンポーネントに対して)Q−AVF決定を行うことができる。さらに図2に示すように、コアレベルのQ−AVF検出器140がさらにコアベースのQ−AVF決定を処理することができる。] 図2 [0024] 本発明の範囲は図2の実施形態のこの特定の実装例に限定されない。例えば、様々な実装例では、Q−AVFを異なる粒度で演算することができる。極端な例では、構造ごとに計算する(各構造についてカスタマイズされたQ−AVFが必要となる)。またこれとは逆の極端な例では、Q—AVFは、コアごとに計算されてよく、他の実装例はこの間に属する。FE、BE、およびMSといったより大きなブロックへと自然に関連付けられる構造を集積して、プロセッサの別個の領域でQ−AVFを評価する効率的な方法を提供することができ、一方でハードウェア実装のコストも最低限に抑えることができる。] 図2 [0025] 図2は、プロセッサ100の各部分が自身の検出器を含み、プロセッサ100がさらにコアレベルの検出器を含みうるとして描かれているが、特定の実装例にはこれら全ての検出器が存在するわけではないことを理解されたい。例えば、様々な実装例では、任意のプロセッサ内にこれより少ない数の検出器があってもよいし、検出器が1つだけあってもよい。説明の便宜上、図2に示す各検出器の機能を説明する。しかし、任意のプロセッサ実装例では記載した検出器が唯一あっても、あるいはそのサブセットがあっても、あるいは記載した検出器全てが存在してもよい。] 図2 [0026] 上述したように、FE110は、復号されたマクロオペを保持する命令キューと、復号されたマイクロオペを保持する命令復号キューとを含む。一実施形態では、基本プロセッサメトリックの最小セットを利用して、フロントエンドのQ−AVFを平均95パーセントの精度で、最悪でも80パーセントよりは良好な精度で計算することができる。本実施形態では、Fe Q−AVF決定の3つのパラメータは、(1)命令復号キュー(IDQ)利用(量子サイズおよびサイクルごとのIDQの有効なエントリ数に基づいて決定することができる)、退避オーダバッファ(ROB)利用(量子サイズおよびサイクルごとのROBの有効なエントリ数に基づいて決定することができる)、および、量子期間中に生じる分岐の予測ミス数である。] [0027] 利用は、量子期間中の任意の構造の有効なエントリ数の平均値として定義されてよい。これは本質的に構造の占有率の尺度である。利用メトリックは通常、カウントを時間長で除算したものである。この場合、カウントは各電力サイクルにおいて足し合わせた有効なエントリ総数であり、時間長は、量子サイズとして固定されている。ハードウェア簡略化目的から、量子サイズの値は2の累乗に設定されてよい。このようにして、除算演算は、量子サイズのlog2分、カウント値を単純にビットシフトしたものに簡略化することができ、これにより整数値が除算演算の結果となる。] [0028] 一実施形態では、このlog2処理は、量子値のゼロの数を、第1の論理値1になるまで最下位ビットから最上位ビットまでカウントする状態マシンで行うことができる。結果が量子値のlog2であり、この演算は量子サイズが変化したときにのみ戻されてよい。次いでこの値を、全ての利用演算に利用するレジスタに格納することができる。特定の量子サイズ値の最上位ビットのみが量子サイズ構成レジスタに書き込まれたことをチェックするだけで、全ての量子サイズ値を2の最低累乗にまで切り捨てることができる。] [0029] 図3は、本発明の一実施形態におけるフロントエンドのQ−AVF検出器のブロック図である。図3に示す検出器200は、複数のカウンタ(IDQ命令カウンタ210、ROB命令カウンタ220、および分岐予測ミスカウンタ230)を含んでよい。これらカウンタ各々は、任意の量子期間中に生じる任意のリソースの利用(または分岐の予測ミス)をカウントするのに利用されてよい。量子期間の長さは、量子サイズ構成レジスタ235に格納されてよく、これはプロセッサ制御レジスタにより設定されてよい(例えば、オペレーティングシステム(OS)の制御の下に)。またさらに、上述したように量子log2構成レジスタ245は、量子log2値を提供してよい。この量子log2値は、量子サイズ構成レジスタ235の値に基づいて、状態マシン240を利用して生成することができる。] 図3 [0030] 図3のアーキテクチャ依存ロジック260は、プロセッサメトリック情報に基づいてアーキテクチャ依存一次方程式を行うべく適合されてよく、様々な入力を受信するよう連結される。特に、ロジック260は、分岐予測ミスカウンタ230の出力を、一対のビットシフタ250および255の出力とともに受信し、これらそれぞれは、利用(つまり、ROB利用およびIDQ利用)の尺度を提供するべく適合される。これに提供される情報に基づいて、ロジック260はQ−AVF値を生成することができ、これをレジスタ265に格納することができる。このQ−AVF値は各量子期間について決定することができる。] 図3 [0031] ロジック260は、それに提供される様々な入力データを考慮する一次方程式を実装することができる。一実施形態では、一次方程式は以下の通りである。 (数1) FE Q−AVF=-6.94888841 + 2.13964287(X) + 0.00000984(Y) - 0.00025137(Z) 本式において、X=IDQ利用、Y=ROB利用、Z=分岐予測ミス数である。係数は非常に小さい浮動小数点であってよい。しかし、これは、全ての値にゼロを十分にパディングして(または、10の大きな累乗で乗算して)値が整数になるようにすることで修正可能である。同様の処理は、比較ロジック270で比較処理を行う前に閾値にも行うこともできる。この処理はオフラインで行うことができ、あるいは、係数または閾値が変化する毎に1度だけ行うことができる。このようにして、処理は、新たな値が入力されると一度だけ必要になるが、このことが起きるのは通常稀である。] [0032] 様々な実装例では、係数はプロセッサのアーキテクチャよび設計パラメータに応じて変化し、任意の設計に対する係数の決定には回帰分析を利用することができる。幾らかの実装例では、一定の項を無視してハードウェアを簡略化することができる。係数を省く場合には、それを閾値において考慮することができる。] [0033] 図3に示すよう、決定されたQ−AVFは比較ロジック270に提供されてよく、ここでは、1以上のQ−AVF閾値との比較が行われ、閾値レジスタ275に格納されてよい。決定されたQ−AVF値が1以上の閾値を越えるか否かに基づいて、制御信号280を比較ロジック270により生成して、これを上述したように1以上の誤り検出/訂正メカニズムの制御に利用することができる。本発明の範囲は、図3の実施形態の特定の実装例に限定されず、他の実装例も可能である。さらに、検出器200はハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせにより実装されることで、Q−AVF値の決定およびその1以上の誤りメカニズムの制御への利用を行うことができる。] 図3 [0034] フロントエンド検出器200に加えて、幾らかの実施形態はさらにバックエンド検出器を含むこともでき、実装例はバックエンド検出器を1つだけ含むことができる。上述したように、バックエンド130は、マイクロオペ命令およびデータを保持し、これらを実行ユニットへとスケジューリングする予約ステーションと、インフライトマイクロ処理を保持し、これらを、アーキテクチャ状態にコミットする前に再度オーダするROBとを含む。一実施形態では、基本プロセッサメトリックの最小セットを利用して、Q−AVFを平均95パーセントの精度で、最悪でも75パーセントよりは良好な精度で計算することができる。バックエンドのQ−AVFについては、これらパラメータは、一実施形態では、予約ステーション(RS)利用(量子サイズおよびサイクルごとのRSの有効なエントリ数に基づいて決定することができる)、格納バッファ(STB)利用(量子サイズおよびサイクルごとのROBの有効なエントリ数に基づいて決定することができる)、分岐予測ミス数、および、命令復号キュー(IDQ)利用(量子サイズおよびサイクルごとのIDQの有効なエントリ数に基づいて決定することができる)を含むことができる。] [0035] 図4は、本発明の一実施形態におけるバックエンドのQ−AVF検出器のブロック図である。図4に示す検出器300は、複数のカウンタ(RS命令カウンタ310、STB命令カウンタ320、IDQ命令カウンタ330、および分岐予測ミスカウンタ333)を含んでよい。これらカウンタ各々は、任意の量子期間中に生じる任意のリソースの利用(または分岐の予測ミス)をカウントするのに利用されてよい。量子期間の長さは、量子サイズ構成レジスタ335に格納されてよい。またさらに、上述したように量子log2構成レジスタ345は、量子log2値を提供してよい。この量子log2値は、量子サイズ構成レジスタ335の値に基づいて、状態マシン340を利用して生成することができる。] 図4 [0036] 図4のアーキテクチャ依存ロジック360は、プロセッサメトリック情報に基づいてアーキテクチャ依存一次方程式を行うべく適合されてよく、様々な入力を受信するよう連結される。特に、ロジック360は、分岐予測ミスカウンタ333の出力を、ビットシフタ350、355、および358の出力とともに受信し、これら各々は、利用(つまり、RS利用、STB利用、およびIDQ利用)の尺度を提供するべく適合される。これに提供される情報に基づいて、ロジック360はQ−AVF値を生成することができ、これをレジスタ365に格納することができる。このQ−AVF値は各量子期間について決定することができる。] 図4 [0037] 図4に示すよう、決定されたQ−AVFは比較ロジック370に提供されてよく、ここでは、1以上のQ−AVF閾値との比較が行われ、閾値レジスタ375に格納されてよい。決定されたQ−AVF値が1以上の閾値を越えるか否かに基づいて、制御信号380を比較ロジック370により生成して、これを上述したように1以上の誤り検出/訂正メカニズムの制御に利用することができる。本発明の範囲は、図4の実施形態の特定の実装例に限定されず、他の実装例も可能である。さらに、検出器300はハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせにより実装されることで、Q−AVF値の決定およびその1以上の誤りメカニズムの制御への利用を行うことができる。] 図4 [0038] 一実施形態では、ロジック360は、数2に示すアーキテクチャ依存一次方程式を行うことができる。 (数2) BEQ- AVF = 5.31777325 + 0.17012719(W) - 0.10485529(X) - 0.00007263(Y) +0.25594201(Z) 本式において、W=RS利用、X=STB利用、Y=分岐予測ミス数、Z=IDQ利用である。] [0039] ロジック260および数1に関して上述したように、係数および/または定数項は、演算の複雑度を緩和するべく前もって操作しておくことができる。本発明の範囲が、図4の実施形態に関するこの特定の式に限定されない点は理解されたい。] 図4 [0040] また別の実施形態では、AVF検出器はメモリサブシステム120に関連付けられてよい。このAVF検出器は、プロセッサに存在する唯一の検出器であっても、上述したフロントエンド検出器およびバックエンド検出器等の他の検出器に追加された検出器であってもよい。上述したように、MOB128は、仮想アドレスおよび物理アドレス、並びに格納処理用のデータを保持する格納バッファと、ロード処理用のアドレスを保持するロードバッファとを含む。一実施形態では、基本プロセッサメトリックの最小セットを利用して、メモリサブシステムのQ−AVFを平均95パーセントの精度で、最悪でも80パーセントよりは良好な精度で計算することができる。一実施形態では、MOB128のQ−AVFを決定するのに利用される3つのパラメータは、格納バッファ(STB)利用(量子サイズおよびサイクルごとのSTBの有効なエントリ数に基づいて決定することができる)、予約ステーション(RS)利用(量子サイズおよびサイクルごとのRSの有効なエントリ数に基づいて決定することができる)、および、DTLB応答の前に格納バッファからフラッシュする命令の数(DTLBアクセスを開始した後であって応答が返される前にフラッシュされた格納のカウント)であってよい。] [0041] 図5は、本発明の一実施形態におけるメモリシステムQ−AVF検出器のブロック図である。図5に示す検出器400は、複数のカウンタ(STB命令カウンタ410、RS命令カウンタ420、およびフラッシュ格納カウンタ430)を含んでよい。これらカウンタ各々は、任意の量子期間中に生じる任意のリソースの利用(またはフラッシュされた格納)をカウントするのに利用されてよい。量子期間の長さは、量子サイズ構成レジスタ435に格納されてよい。量子log2構成レジスタ445は、量子log2値を提供してよく、これは、量子サイズ構成レジスタ435の値に基づいて、状態マシン440を利用して生成することができる。] 図5 [0042] 図5のアーキテクチャ依存ロジック460は、プロセッサメトリック情報に基づいてアーキテクチャ依存一次方程式を行うべく適合されてよく、様々な入力を受信するよう連結される。特に、ロジック460は、フラッシュ格納カウンタ430の出力を、一対のビットシフタ450および455の出力とともに受信し、これらそれぞれは、利用(つまり、STB利用およびRS利用)の尺度を提供するべく適合される。これに提供される情報に基づいて、ロジック460はQ−AVF値を生成することができ、これをレジスタ465に格納することができる。このQ−AVF値は各量子期間について決定することができる。] 図5 [0043] 図5に示すよう、決定されたQ−AVFは比較ロジック470に提供されてよく、ここでは、1以上のQ−AVF閾値との比較が行われ、閾値レジスタ475に格納されてよい。決定されたQ−AVF値が1以上の閾値を越えるか否かに基づいて、制御信号480を比較ロジック470により生成して、これを上述したように1以上の誤り検出/訂正メカニズムの制御に利用することができる。本発明の範囲は、図5の実施形態の特定の実装例に限定されず、他の実装例も可能である。さらに、検出器400はハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせにより実装されることで、Q−AVF値の決定およびその1以上の誤りメカニズムの制御への利用を行うことができる。] 図5 [0044] 一実施形態では、ロジック460は、数3に従ってMOBについてのQ−AVFを決定することができる。 (数3) MOB Q-AVF = 1.61820419 - 0.09218011(X) + 1.88263525(Y) - 0.0000307(Z) 本式において、X=RS利用、Y=STB利用、Z=DTLB応答前のSTBフラッシュ数である。] [0045] 他の実施形態では、別個のプロセッサパイプラインについて個々に検出器(例えば、上述したフロントエンド検出器およびバックエンド検出器およびメモリサブシステム検出器)を設けるのではなく、図2の検出器140等の単一コアまたはフルチップ検出器を設けることができる。幾らかの実装例では、これは、唯一の検出器であってよく、FEおよびBEパイプラインは一般的に互いのQ−AVFのトレンドをトラックする。さらに上述するように、プロセッサの各ブロックのQ−AVFを決定するメトリック同士にかなり重複する部分がある。誤り軽減スキームのなかにはチップ全体のAVFに影響するものがあるので、Q−AVF検出器をマイクロプロセッサパイプライン全体について設けることができる。基本プロセッサメトリックの最小セットを利用して、プロセッサのQ−AVFを平均95パーセントの精度で、最悪でも80パーセントよりは良好な精度で計算することができる。一実施形態では、フルチップQ−AVF決定に関する7つのパラメータは、命令復号キュー(IDQ)利用、退避オーダバッファ(ROB)利用、予約ステーション(RS)利用、格納バッファ(STB)利用、分岐予測ミス数、ROBが空であるサイクル数、および、DTLB応答の前に格納バッファからフラッシュされる命令数である。] 図2 [0046] 図6は、本発明の一実施形態におけるバックエンドのQ−AVF検出器のブロック図である。図6に示す検出器500は、複数のカウンタ(IDQ命令カウンタ510、ROB命令カウンタ515、RS命令カウンタ520、STB命令カウンタ525、ROB空カウンタ530、分岐予測ミスカウンタ533、およびフラッシュ格納カウンタ534)を含んでよい。これらカウンタ各々は、任意の量子期間中に生じる任意のリソースの利用(または分岐予測ミスまたはフラッシュされた格納)をカウントするのに利用されてよい。量子期間の長さは、量子サイズ構成レジスタ535に格納されてよい。さらに、上述したように、量子log2構成レジスタ545は、量子log2値を提供してよい。この量子log2値は、量子サイズ構成レジスタ535の値に基づいて、状態マシン540を利用して生成することができる。] 図6 [0047] 図6のアーキテクチャ依存ロジック560は、プロセッサメトリック情報に基づいてアーキテクチャ依存一次方程式を行うべく適合されてよく、様々な入力を受信するよう連結される。特に、ロジック560は、カウンタ(つまり、カウンタ510、515、520、525)、ROB空カウンタ530、分岐予測ミスカウンタ533、およびフラッシュ格納カウンタ534)の出力を、ビットシフタ550、552、554、および556の出力とともに受信する。これに提供される情報に基づいて、ロジック560はQ−AVF値を生成することができ、これをレジスタ565に格納することができる。このQ−AVF値は各量子期間について決定することができる。] 図6 [0048] 図6に示すよう、決定されたQ−AVFは比較ロジック570に提供されてよく、ここでは、1以上のQ−AVF閾値との比較が行われ、閾値レジスタ575に格納されてよい。決定されたQ−AVF値が1以上の閾値を越えるか否かに基づいて、制御信号580を比較ロジック570により生成して、これを上述したように1以上の誤り検出/訂正メカニズムの制御に利用することができる。本発明の範囲は、図6の実施形態の特定の実装例に限定されず、他の実装例も可能である。さらに、検出器500はハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせにより実装されることで、Q−AVF値の決定およびその1以上の誤りメカニズムの制御への利用を行うことができる。] 図6 [0049] フルチップ検出器を利用して、フロントエンド、バックエンド、およびMOB用に個々のQ−AVF値を、数4−6に従って決定することができる。 (数4) FE Q-AVF=-10.5340689 + 1.91609831(A) + 0.00279797(B) + 0.29720333(C) + 0.11824924(D) - 0.00026378(E) + 0.00001177(F) + 0.00000496(G) (数5) BE Q-AVF=3.1760199 + 0.15379405(A) + 0.06943891(B) + 0.50535518(C) - 0.15898313(D) -0.00007247(E) + 0.00000233(F) - 0.00001199(G) (数6) MOB Q-AVF=3.5974914+0.11588197(A)-0.02028408(B)-0.22281406(C)+1.89341998(D)+ 0.00003006(E) - 0.00000246(F) - 0.00006469(G) これら式において、A=IDQ利用、B=ROB利用、C=RS利用、D=STB利用、E=分岐予測ミス数、F=ROB空サイクル数、および、G=DTLB応答前のSTBフラッシュ数である。] [0050] またさらに、これら同じプロセッサメトリックを利用して、フルチップのQ−AVF値を、数7に述べるように決定することができる。 (数7) フルチップQ-AVF = -1.2535192 + 0.728591443(A) + 0.0173176(B) + 0.19324815(C) + 0.61756203(D) - 0.00010206(E) + 0.00000388(F) - 0.00002391(G)] [0051] これら特定の式で記載したが、ロジック560は他の一次方程式を利用してフルチップQ−AVFを(様々なユニットのQ−AVFとともに)決定することができる。] [0052] このように、様々な実施形態では、Q−AVFの推定に基づく誤り軽減ハードウェアの動的制御は、誤り軽減ハードウェアを実装する際の電力および性能面での代償を50%を超える割合で低減することで信頼性、電力、および性能を大いに最適化することができ、一方で信頼性はあまり落ちることはない。従って実施形態は、特定の量子期間中のAVFが、前の、または将来の量子期間から大幅に変化しうるという事実を利用することができる。この結果、プログラムは高脆弱性段階および低脆弱性段階を有する。様々なプロセッサメトリックを利用して、かなりの精度でQ−AVFを推定することができ、これにより、誤り軽減メカニズムの振る舞いを直接的または間接的に修正して、電力、性能、および信頼性を最適化することができる制御が可能となる。] [0053] 実施形態は、多くの異なる種別のシステムにおいて実装可能である。図7は本発明の一実施形態におけるシステムのブロック図である。図7に示すように、マルチプロセッサシステム600はポイントツーポイントインターコネクトシステムであり、ポイントツーポイントインターコネクト650を介して連結されている第1のプロセッサ670と第2のプロセッサ680とを含む。図7に示すように、プロセッサ670および680の各々は、マルチコアプロセッサであってよく、これらには第1のプロセッサコアおよび第2のプロセッサコア(プロセッサコア674aおよび674b、およびプロセッサコア684aおよび684b)が含まれてよいが、さらなるコアが含まれてもよい。各プロセッサコアは、本発明の一実施形態における1以上のQ−AVF検出器を含んでよい。このようにして、コアの様々な誤り軽減ハードウェアは、必要ではないときには電力性能の代償を低減させるよう動的に制御することができる。] 図7 [0054] 図7を参照すると、第1のプロセッサ670はさらに、メモリコントローラハブ(MCH)672と、ポイントツーポイント(P−P)インタフェース676および678とを含む。同様に、第2のプロセッサ680は、MCH682と、P−Pインタフェース686および688とを含む。図2に示すように、MCH672および682は、プロセッサをそれぞれメモリ(メモリ632およびメモリ634)に連結させ、これらは、プロセッサにそれぞれローカルに添付されたメインメモリ(例えばDRAM)の部分であってよい。第1のプロセッサ670および第2のプロセッサ680は、P−Pインターコネクト652および654をそれぞれ介してチップセット690に連結されてよい。図7に示すように、チップセット690はP−Pインタフェース694および698を含む。] 図2 図7 [0055] さらにチップセット690は、P−Pインターコネクト639により、チップセット690を高性能グラフィックスエンジン638に連結するインタフェース692を含む。そして、チップセット690は、インタフェース696を介して第1のバス616に連結されてよい。図7に示すように、様々な入出力(I/O)デバイス614が、第1のバス616に、および、第1のバス616を第2のバス620に連結するバスブリッジ618に、連結されてよい。一実施形態では、例えばキーボード/マウス622、通信デバイス626、および、コード630を含んでよいディスクドライブまたは他の大容量記憶デバイス等のデータ記憶ユニット628を含む様々なデバイスが、第2のバス620に連結されてよい。さらに、音声I/O624が第2のバス620に連結されてよい。] 図7 [0056] 誤り軽減ユニットの制御には、制御情報またはQ−AVF値を直接利用すること、または、情報をバッファリングして複数の量子期間のトレンドを特定し、Q−AVFが単一の量子期間または幾らかの量子期間の閾値を超えていることが示される場合のみに情報に対して働きかけること、が含まれてよいが、これらに限定はされない。このような制御はさらに、誤り軽減ハードウェアの起動/停止に利用されるだけではなく、高保護モードまたは低保護モードまたは、モードの間で、異なる段階の動作間で誤り軽減ハードウェアを遷移させる際に、および、電力/性能コストが変化する異なる保護スキーム間で選択を行う際に利用することができる。この一例には、チェックポイント生成を利用する誤り軽減スキームが含まれる。チェックポイント生成の周期によって、誤り復帰の際に失われる進捗量が決定される。一実施形態を利用して、Q−AVF値が示す実際の重大な誤りの可能性に応じてチェックポイントを取得する周期が増減される。この場合、Q−AVF値を多数の閾値と比較して、起動する保護段階を決定する。] [0057] 一実施形態では、OSベースの制御は、OSに検出器情報を提供することで実現されてよい。この実施形態では、OSは、プログラムが脆弱な領域に入ろうしていることを判断することができ、閾値変更要求を発行することができる。例えば、検出器閾値(例えば第1の閾値)が10%の閾値辺りにある場合、OSは閾値を異なるレベルとしたり、検出器に自身の量子サイズを変更させたりすることができる。] [0058] 実施形態は、コードによる実装が可能であり、システムを、命令を行わせるプログラミングに利用されうる命令を格納する記憶媒体上に格納することができる。記憶媒体は、フロッピー(登録商標)ディスク、光学ディスク、CD−ROM、CD−RW、および光磁気ディスク等の任意の種類のディスク、ROM、DRAM等のRAM、SRAM、EPROM、フラッシュメモリ、EEPROM(登録商標)、磁気または光学カードを含む半導体デバイス、または電子命令を格納するのに適した任意の他の種類の媒体を含みうるがこれらに限定はされない。] [0059] 本発明を限られた数の実施形態に関して記載してきたが、当業者であれば多数の変形例および変更例について想到することができる。添付請求項はこれら全ての変形例および変更例を本発明の真の精神および範囲内に含むことを意図している。]
权利要求:
請求項1 量子期間中にプロセッサの格納ユニットの利用値を維持する複数のカウンタと、前記量子期間中に前記プロセッサの予測ユニットが生じた予測ミス数をカウントする第2のカウンタと、前記利用値と前記予測ミス数とに少なくとも部分的に基づいて、前記量子期間についての前記プロセッサの少なくとも第1の部分の脆弱性計測値を決定する第1のロジックとを備える装置。 請求項2 利用値および予測ミス数の第2のセットに少なくとも部分的に基づいて、前記量子期間についての前記プロセッサの第2の部分の脆弱性計測値を決定する第2のロジックを備える請求項1に記載の装置。 請求項3 前記プロセッサの前記少なくとも第1の部分は、前記プロセッサのフロントエンドユニットに対応し、前記プロセッサの前記第2の部分は、前記プロセッサのバックエンドユニットに対応する請求項2に記載の装置。 請求項4 前記第1のロジックは、前記利用値を受信し、複数の項を有する一次関数に従って前記脆弱性計測値を決定し、前記複数の項の各々は、係数と前記利用値のうち1つとを含む請求項1に記載の装置。 請求項5 前記脆弱性計測値を受信し、前記脆弱性計測値に基づいて前記プロセッサの少なくとも1つの誤り軽減ユニットを制御する制御信号を生成する第2のロジックをさらに備える請求項4に記載の装置。 請求項6 前記第2のロジックは、前記脆弱性計測値が第1の閾値より大きい場合に前記少なくとも1つの誤り軽減ユニットの誤り検出メカニズムをイネーブルし、前記脆弱性計測値が第2の閾値より大きい場合に前記少なくとも1つの誤り軽減ユニットの誤り訂正メカニズムをイネーブルする請求項5に記載の装置。 請求項7 前記第2のロジックは、それぞれが複数の量子期間のうち1つに対応する複数の脆弱性計測値を受信し、前記複数の脆弱性計測値に基づいて前記制御信号を生成する請求項5に記載の装置。 請求項8 前記第2のロジックは、前記脆弱性計測値が前記第1の閾値より小さい場合に前記少なくとも1つの誤り軽減ユニットをディセーブルし、前記少なくとも1つの誤り軽減ユニットは、前記第2のロジックによりディセーブルされると、非誤り軽減タスクを行うよう構成される請求項6に記載の装置。 請求項9 前記第2のロジックは、前記少なくとも1つの誤り軽減ユニットを、第1の複数の量子期間の脆弱性計測値に基づいてプログラムの第1の部分中にイネーブルするよう、および、第2の複数の量子期間の脆弱性計測値に基づいてディセーブルするよう、動的に制御する請求項5に記載の装置。 請求項10 前記装置はプロセッサを備え、前記複数のカウンタ、前記第2のカウンタ、および前記第1のロジックを有する検出器をさらに備え、前記検出器は前記プロセッサの第1の部分に関連付けられている請求項1に記載の装置。 請求項11 前記検出器の前記複数のカウンタの少なくとも1つは、前記プロセッサの第2の部分の構造に関連付けられている請求項10に記載の装置。 請求項12 プロセッサメトリックを利用してプロセッサの少なくとも一部についての量子期間の量子化アーキテクチャ脆弱性係数値(Q−AVF値)を決定する段階と、前記Q−AVF値を少なくとも1つの閾値と比較する段階と、前記比較に基づいて前記プロセッサの少なくとも1つの誤り軽減ユニットを動的に制御する段階とを備える方法。 請求項13 複数の項を有する一次方程式に従って前記Q−AVF値を決定する段階をさらに備え、前記複数の項の各々は、プロセッサメトリック値と重み値とに対応している請求項12に記載の方法。 請求項14 前記プロセッサメトリック値の各々は、前記プロセッサの複数のフロントエンド構造のいずれか1つについての利用値に対応している請求項13に記載の方法。 請求項15 第1の利用値は、前記量子期間の各サイクルの構造の有効なエントリの数に対応している請求項14に記載の方法。 請求項16 前記量子期間に対応する対数値だけ、前記有効なエントリの数をシフトすることにより、前記第1の利用値を決定する段階をさらに備える請求項15に記載の方法。 請求項17 フロントエンドユニットの命令復号キューのプロセッサメトリック値と、前記フロントエンドユニットの分岐予測器と、前記プロセッサのバックエンドユニットの退避オーダバッファとに基づいて、前記プロセッサの前記フロントエンドユニットの前記Q−AVF値を決定する段階をさらに備える請求項12に記載の方法。 請求項18 複数のコアを有するマルチコアプロセッサと、前記マルチコアプロセッサに連結されたDRAMとを備え、前記複数のコアのうちの第1のコアは、複数のプロセッサメトリック値に基づいて前記第1のコアの脆弱性計測値を検出する検出器と、前記脆弱性計測値に基づいて前記第1のコアの誤り軽減ユニットを制御するコントローラとを含み、前記複数のプロセッサメトリック値の各々は、第1の期間中のコア構造の動作に関するシステム。 請求項19 前記検出器は、複数のカウンタと、第2のカウンタと、第1のロジックとを含み、前記複数のカウンタの各々は、前記第1の期間中の前記複数のプロセッサメトリック値を維持し、前記第2のカウンタは、前記第1の期間中に前記第1のコアの予測ユニットが生じた予測ミス数をカウントし、前記第1のロジックは、前記複数のプロセッサメトリック値と前記予測ミス数とに少なくとも部分的に基づいて、前記第1の期間の前記第1のコアの少なくとも第1の部分の前記脆弱性計測値を決定する請求項18に記載のシステム。 請求項20 前記検出器は第2のロジックをさらに含み、前記第2のロジックは、プロセッサメトリック値および予測ミス数の第2のセットに少なくとも部分的に基づいて、前記第1の期間の前記第1のコアの第2の部分の第2の脆弱性計測値を決定する請求項19に記載のシステム。 請求項21 前記第1のロジックは前記複数のプロセッサメトリック値を受信し、複数の項を有する一次関数に従って前記脆弱性計測値を決定し、前記複数の項の各々は、係数と前記複数のプロセッサメトリック値のうち1つとを含む請求項19に記載のシステム。 請求項22 前記コントローラは、前記脆弱性計測値が第1の閾値より大きい場合に前記誤り軽減ユニットの誤り検出メカニズムをイネーブルし、前記脆弱性計測値が第2の閾値より大きい場合に前記誤り軽減ユニットの誤り訂正メカニズムをイネーブルする請求項18に記載のシステム。 請求項23 前記コントローラは、それぞれが複数の期間のうち1つに対応する複数の脆弱性計測値を受信し、前記複数の脆弱性計測値に基づいて制御信号を生成する請求項22に記載のシステム。 請求項24 前記誤り軽減ユニットは、前記コントローラによりディセーブルされると、非誤り軽減タスクを行うよう構成される請求項22に記載のシステム。
类似技术:
公开号 | 公开日 | 专利标题 US20190332158A1|2019-10-31|Dynamic core selection for heterogeneous multi-core systems TWI494850B|2015-08-01|通透地提供給作業系統之非對稱多核心處理器系統 US10061588B2|2018-08-28|Tracking operand liveness information in a computer system and performing function based on the liveness information US8990597B2|2015-03-24|Instruction for enabling a processor wait state Esmaeilzadeh et al.2012|Architecture support for disciplined approximate programming JP5335946B2|2013-11-06|電力的に効率的な命令プリフェッチ機構 Powell et al.2009|Architectural core salvaging in a multi-core processor for hard-error tolerance Calder et al.1999|Selective value prediction Weaver et al.2004|Techniques to reduce the soft error rate of a high-performance microprocessor Reddi et al.2009|Voltage emergency prediction: Using signatures to reduce operating margins Martínez et al.2002|Cherry: Checkpointed early resource recycling in out-of-order microprocessors Reis et al.2005|Software-controlled fault tolerance Biswas et al.2005|Computing architectural vulnerability factors for address-based structures CN101156132B|2010-06-09|用于预测不对准存储器存取的方法和设备 Mukherjee et al.2002|Detailed design and evaluation of redundant multi-threading alternatives DE102010054337B4|2016-09-15|Mechanismen, um ineffizientes Core-Hopping zu vermeiden und Hardware-unterstützte Auswahl eines Niedrigleitungszustands bereitzustellen US8694976B2|2014-04-08|Sleep state mechanism for virtual multithreading Wang et al.2006|ReStore: Symptom-based soft error detection in microprocessors Gomaa et al.2005|Opportunistic transient-fault detection Mittal et al.2015|A survey of techniques for modeling and improving reliability of computing systems JP5357017B2|2013-12-04|高速で安価なストア−ロード競合スケジューリング及び転送機構 KR101546033B1|2015-08-20|Smt 기계에서 비교 및 전달 명령어를 사용한 안정적 실행 US7647518B2|2010-01-12|Replay reduction for power saving CN101452378B|2011-11-23|阻止指令提取调节的方法、处理器和装置 US8219834B2|2012-07-10|Predictive power gating with optional guard mechanism
同族专利:
公开号 | 公开日 BRPI0901325A2|2012-02-28| US7849387B2|2010-12-07| GB2471404A|2010-12-29| CN101566958B|2012-07-18| US20090271676A1|2009-10-29| TW201005552A|2010-02-01| DE102009018153A1|2009-10-29| CN101566958A|2009-10-28| GB2471404A8|2017-05-24| TWI417745B|2013-12-01| DE102009018153B4|2014-07-03| GB2471404B8|2017-05-24| GB2471404B|2013-02-27| GB201015008D0|2010-10-20| WO2009131924A3|2010-03-18| JP5174191B2|2013-04-03| WO2009131924A2|2009-10-29|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2012-08-01| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120731 | 2012-10-31| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121030 | 2012-11-19| TRDD| Decision of grant or rejection written| 2012-11-28| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20121127 | 2013-01-10| A61| First payment of annual fees (during grant procedure)|Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121227 | 2013-01-11| R150| Certificate of patent or registration of utility model|Ref document number: 5174191 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 | 2016-01-12| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2017-01-10| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2018-01-16| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2019-01-08| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2020-01-07| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2020-12-28| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2021-12-28| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|